<?xml version="1.0" encoding="UTF-8"?>
<aiml version="1.0">
    <!--  -->
    <!-- Free software (c) 2011 ALICE A.I. Foundation.   -->
    <!-- This program is open source code released under -->
    <!-- the terms of the GNU General Public License     -->
    <!-- as published by the Free Software Foundation.   -->
    <!-- Complies with AIML 1.0 Tag Set Specification -->
    <!-- as adopted by the ALICE A.I. Foundation.  -->
    <!--  -->

    <!-- Badanswer.aiml: Demo of Pandorabots learning, AIML unquoting and eval -->
    <!-- Revision Badanswer-0.01 -->
    <!-- Extended by KnyteTrypper, March 3, 2005 -->
    <!-- Modified by John Campbell to allow multi-sentence inputs, June 30, 2005 -->

    <category>
        <pattern>BAD ANSWER</pattern>
        <template>
            <think>
                <set name="badanswer-input">
                    <input index="2"/>
                </set>
                <set name="badanswer-that">
                    <that index="2,1"/>
                </set>
                <set name="badanswer-that-full">
                    <that index="2,*"/>
                </set>
                <set name="topic">badanswer-prelim</set>
            </think>
            Would you like to teach me a new answer to "<get name="badanswer-input"/>"?
        </template>
    </category>

    <topic name="BADANSWER-PRELIM">

        <category>
            <pattern>_</pattern>
            <template>
                <think>
                    <set name="star">
                        <star/>
                    </set>
                </think>
                <condition>
                    <li name="star" value="yes">
                        OK, what should I have said?
                        <think>
                            <set name="topic">learning new answers</set>
                        </think>
                    </li>
                    <li name="star" value="no">
                        OK, let's forget it then.
                        <think>
                            <set name="topic">learning new answers</set>
                        </think>
                    </li>
                    <li>Yes or No?</li>
                </condition>
            </template>
        </category>

        <category>
            <pattern>_ _</pattern>
            <template>
                <sr/>
            </template>
        </category>

    </topic>


    <category>
        <pattern>_</pattern>
        <that>OK WHAT SHOULD I HAVE SAID</that>
        <template>
            "
            <set name="badanswer-newresp">
                <input index="1"/>
            </set>
            ..."?
            <condition>
                <li name="badanswer-that" value="*">
                    <think>
                        <set name="topic">BADANSWER</set>
                    </think>
                    Does this depend on me having just said, "<get name="badanswer-that-full"/>"?
                </li>
                <li>
                    <think>
                        <set name="topic">BADANSWER2</set>
                    </think>
                    Do you want me to remember that?
                </li>
            </condition>
        </template>
    </category>

    <category>
        <pattern>_ _</pattern>
        <that>OK WHAT SHOULD I HAVE SAID</that>
        <template>
            <sr/>
        </template>
    </category>


    <topic name="BADANSWER">

        <category>
            <pattern>_</pattern>
            <template>
                <think>
                    <set name="star">
                        <star/>
                    </set>
                    <set name="response1">
                        <response index="1"/>
                    </set>
                    <set name="response2">
                        <response index="2"/>
                    </set>
                    <condition>
                        <li name="response2" value="OK, what should I have said">
                            <set name="badanswer-newresp">
                                <request index="1"/>
                            </set>
                        </li>
                    </condition>
                </think>
                <condition>
                    <li name="response1" value="OK, what should I have said"></li>
                    <li name="star" value="no">I'll try to remember to respond, "<get name="badanswer-newresp"/>" when
                        you say, "<get name="badanswer-input"/>"
                        <learn>
                            <category>
                                <pattern>
                                    <eval>
                                        <uppercase>
                                            <get name="badanswer-input"/>
                                        </uppercase>
                                    </eval>
                                </pattern>
                                <template>
                                    <eval>
                                        <get name="badanswer-newresp"/>
                                    </eval>
                                </template>
                            </category>
                        </learn>
                        <think>
                            <set name="topic">learning new answers</set>
                        </think>
                    </li>
                    <li name="star" value="yes">I'll try to remember to respond, "<get name="badanswer-newresp"/>" when
                        you say, "<get name="badanswer-input"/>" if I have just said "<get name="badanswer-that-full"/>"
                        <learn>
                            <category>
                                <pattern>
                                    <eval>
                                        <uppercase>
                                            <get name="badanswer-input"/>
                                        </uppercase>
                                    </eval>
                                </pattern>
                                <that>
                                    <eval>
                                        <uppercase>
                                            <get name="badanswer-that"/>
                                        </uppercase>
                                    </eval>
                                </that>
                                <template>
                                    <eval>
                                        <get name="badanswer-newresp"/>
                                    </eval>
                                </template>
                            </category>
                        </learn>
                        <think>
                            <set name="topic">learning new answers</set>
                        </think>
                    </li>
                    <li>Yes or No?</li>
                </condition>
            </template>
        </category>

        <category>
            <pattern>_ _</pattern>
            <template>
                <sr/>
            </template>
        </category>

    </topic>

    <topic name="BADANSWER2">

        <category>
            <pattern>_</pattern>
            <template>
                <think>
                    <set name="star">
                        <star/>
                    </set>
                    <set name="response1">
                        <response index="1"/>
                    </set>
                    <set name="response2">
                        <response index="2"/>
                    </set>
                    <condition>
                        <li name="response2" value="OK, what should I have said">
                            <set name="badanswer-newresp">
                                <request index="1"/>
                            </set>
                        </li>
                    </condition>
                </think>
                <condition>
                    <li name="response1" value="OK, what should I have said"></li>
                    <li name="star" value="yes">Fine. I'll try to remember to respond, "<get name="badanswer-newresp"/>"
                        when you say, "<get name="badanswer-input"/>"
                        <learn>
                            <category>
                                <pattern>
                                    <eval>
                                        <uppercase>
                                            <get name="badanswer-input"/>
                                        </uppercase>
                                    </eval>
                                </pattern>
                                <template>
                                    <eval>
                                        <get name="badanswer-newresp"/>
                                    </eval>
                                </template>
                            </category>
                        </learn>
                        <think>
                            <set name="topic">learning new answers</set>
                        </think>
                    </li>
                    <li name="star" value="no">OK, let's forget it then.
                        <think>
                            <set name="topic">learning new answers</set>
                        </think>
                    </li>
                    <li>Yes or No?</li>
                </condition>
            </template>
        </category>

        <category>
            <pattern>_ _</pattern>
            <template>
                <sr/>
            </template>
        </category>

    </topic>
    <category>
        <pattern>NOT RIGHT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT IS WRONG</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT IS NOT RIGHT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT IS INCORRECT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT ANSWER IS NOT CORRECT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT ANSWER IS INCORRECT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT ANSWER IS WRONG</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT ANSWER IS NOT RIGHT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT ANSWER WAS BAD</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT WAS A BAD ANSWER</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT WAS AN INCORRECT ANSWER</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>THAT WAS THE WRONG ANSWER</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>


    <category>
        <pattern>THAT ANSWER WAS NOT RIGHT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>YOUR ANSWER WAS WRONG</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>YOUR ANSWER WAS NOT RIGHT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>YOUR ANSWER WAS NOT CORRECT</pattern>
        <template>
            <srai>BAD ANSWER</srai>
        </template>
    </category>

    <category>
        <pattern>CAN I TEACH YOU</pattern>
        <template>Yes, if I give you a bad answer, just say "Bad answer" and you can teach me a new response.</template>
    </category>

    <category>
        <pattern>DO YOU LEARN</pattern>
        <template>
            <srai>CAN I TEACH YOU</srai>
        </template>
    </category>

<!--    <category>-->
<!--        <pattern>WILL YOU LEARN *</pattern>-->
<!--        <template>-->
<!--            <srai>CAN I TEACH YOU</srai>-->
<!--        </template>-->
<!--    </category>-->

<!--    <category>-->
<!--        <pattern>IF * WILL YOU LEARN *</pattern>-->
<!--        <template>-->
<!--            <srai>CAN I TEACH YOU</srai>-->
<!--        </template>-->
<!--    </category>-->

</aiml>
